/**
 *
 */
package br.gov.ms.tce.cjur.acao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import br.gov.ms.tce.bean.comum.Comparavel;
import br.gov.ms.tce.bean.comum.DocumentoPessoal;
import br.gov.ms.tce.bean.comum.Pessoa;
import br.gov.ms.tce.bean.comum.PessoaFisica;
import br.gov.ms.tce.bean.comum.Responsavel;
import br.gov.ms.tce.bean.comum.Telefone;
import br.gov.ms.tce.bean.comum.TipoClassificacao;
import br.gov.ms.tce.cjur.helper.CjurHelper;

/**
 * Esta classe serve para separa os objetos de tela de uma nova solicitação
 * @author Anderson Paulino
 * @date 11/08/2011
 */
public class SolicitacaoNovoResponsavelView extends SolicitacaoNovaAbstractView implements Serializable{

	
	/**
	 * serialVersionUID:long
	 */
	private static final long serialVersionUID = 6115303406400166910L;	
	
	private DocumentoPessoal rg;	
	
	private DocumentoPessoal tituloEleitor;
	
	private Telefone celular;	
	
	private Responsavel responsavel;
	
	private Boolean mostarPanelResp=false;	
	
	private List<TipoClassificacao> tipoResponvels;
	
	private List<TipoClassificacao> tipoSexos;
	
	public SolicitacaoNovoResponsavelView(){		
		super(new PessoaFisica());		
		iniciaProprieadadesPessoaAlterada(new PessoaFisica());
		responsavel = new Responsavel();
	}
	
	public void addResponsavel(){	
		mudarMostarPanelResp();
		((PessoaFisica)getPessoaAlterada()).getResponsavels().add(responsavel);
		responsavel = new Responsavel();
		setUa(null);
	}
	
	public void mudarMostarPanelResp(){
		this.mostarPanelResp = !this.mostarPanelResp;
	}
	

	/**
	 * Este método inicia as propriedades da pessoa alterada.
	 */
	public void iniciaProprieadadesPessoaAlterada(Pessoa pessoa) {		
		super.iniciaProprieadadesPessoaAlterada(pessoa);
		rg = new DocumentoPessoal(TipoClassificacao.TIPO_DOCUMENTO_PESSOAL_RG);
		getPessoaAlterada().getDocumentoPessoals().add(rg);		
		tituloEleitor = new DocumentoPessoal(TipoClassificacao.TIPO_DOCUMENTO_PESSOAL_TITULO_DE_ELEITOR);
		getPessoaAlterada().getDocumentoPessoals().add(tituloEleitor);
		celular = new Telefone(TipoClassificacao.TIPO_TELEFONE_CELULAR);
		getPessoaAlterada().getTelefones().add(celular);
		
	}	
	
	/**
	 * Seleciona a pessoa, e copia as propriedades para o objeto pessoaAlterada.
	 */
	public void copiarPropriedades(){
		iniciaProprieadadesPessoaAlterada(new PessoaFisica());
		super.copiarPropriedades();								
		CjurHelper.copiaPropriedades(rg, TipoClassificacao.TIPO_DOCUMENTO_PESSOAL_RG, new ArrayList<Comparavel>(getPessoaOriginal().getDocumentoPessoals()));
		CjurHelper.copiaPropriedades(tituloEleitor, TipoClassificacao.TIPO_DOCUMENTO_PESSOAL_TITULO_DE_ELEITOR, new ArrayList<Comparavel>(getPessoaOriginal().getDocumentoPessoals()));
		CjurHelper.copiaPropriedades(celular, TipoClassificacao.TIPO_TELEFONE_CELULAR, new ArrayList<Comparavel>(getPessoaOriginal().getTelefones()));		
		
	}

	/**
	 * @return Retorna o valor da propriedade rg
	 */
	public DocumentoPessoal getRg() {
		return rg;
	}

	/**
	 * @param Configura o valor da propriedade rg
	 */
	public void setRg(DocumentoPessoal rg) {
		this.rg = rg;
	}

	
	/**
	 * @return Retorna o valor da propriedade responsavel
	 */
	public Responsavel getResponsavel() {
		return responsavel;
	}

	/**
	 * @param Configura o valor da propriedade responsavel
	 */
	public void setResponsavel(Responsavel responsavel) {
		this.responsavel = responsavel;
	}

	
	
	/**
	 * @return Retorna o valor da propriedade tipoResponvels
	 */
	public List<TipoClassificacao> getTipoResponvels() {
		return tipoResponvels;
	}

	/**
	 * @param Configura o valor da propriedade tipoResponvels
	 */
	public void setTipoResponvels(List<TipoClassificacao> tipoResponvels) {
		this.tipoResponvels = tipoResponvels;
	}

	



	/**
	 * @return Retorna o valor da propriedade celular
	 */
	public Telefone getCelular() {
		return celular;
	}


	/**
	 * @param Configura o valor da propriedade celular
	 */
	public void setCelular(Telefone celular) {
		this.celular = celular;
	}

	/**
	 * @return Retorna o valor da propriedade tituloEleitor
	 */
	public DocumentoPessoal getTituloEleitor() {
		return tituloEleitor;
	}


	/**
	 * @param Configura o valor da propriedade tituloEleitor
	 */
	public void setTituloEleitor(DocumentoPessoal tituloEleitor) {
		this.tituloEleitor = tituloEleitor;
	}



	
	/**
	 * @return Retorna o valor da propriedade mostarPanelResp
	 */
	public Boolean getMostarPanelResp() {
		return mostarPanelResp;
	}


	/**
	 * @param Configura o valor da propriedade mostarPanelResp
	 */
	public void setMostarPanelResp(Boolean mostarPanelResp) {
		this.mostarPanelResp = mostarPanelResp;
	}

	/**
	 * @return Retorna o valor da propriedade tipoSexos
	 */
	public List<TipoClassificacao> getTipoSexos() {
		return tipoSexos;
	}

	/**
	 * @param Configura o valor da propriedade tipoSexos
	 */
	public void setTipoSexos(List<TipoClassificacao> tipoSexos) {
		this.tipoSexos = tipoSexos;
	}

	
	
	
	
	
	

	
	
	
	
	
	
	
	
	
	
	
	
	

}
